package filehelp

import (
	"io"
	"mime/multipart"
	"os"
	"path/filepath"
)

func IsFileExists(filePath string) bool {
	_, err := os.Stat(filePath)
	if err != nil {
		if os.IsNotExist(err) {
			return false
		}
	}
	return true
}

// SaveFileHeader 保存http上传的文件
// 参数：fileName可以不传，默认中file读取
func SaveFileHeader(dstDir, fileName string, fileHeader *multipart.FileHeader) (filePath string, err error) {
	// 创建目标文件夹
	if err = os.MkdirAll(dstDir, os.ModePerm); err != nil {
		return "", err
	}
	src, err := fileHeader.Open()
	if err != nil {
		return "", err
	}
	defer src.Close()
	if fileName == "" {
		fileName = fileHeader.Filename
	}
	// 创建目标文件
	filePath = filepath.Join(dstDir, fileName)
	file, err := os.Create(filePath)
	if err != nil {
		return "", err
	}
	defer file.Close()
	_, err = io.Copy(file, src)
	return
}
